查看原文
其他

骚操作:为了求职,劫持十几个热门 Packagist PHP 包

Ax Sharma 代码卫士 2023-06-07

 聚焦源代码安全,网罗国内外最新资讯!

编译:代码卫士


昵称为 “neskafe3v1” 的研究员劫持了十几个 Packagist 包,目的是为了找到一份工作。其中一些包的总安装量达到数亿次,而该研究员似乎对此信心满满。


01
至少劫持了14个 Packagist 包


这名名为 “neskafe3v1” 的研究员主动联系 BleepingComputer 媒体表示已接管超过14个 Packagist 包,其中一个包的安装量超过5亿次。Packagist 是 PHP 包的主要注册表,通过依赖管理工具 Composer 安装。Packagist 并不会托管这些包而是充当元数据目录,将开源包发布到 GitHub 上。之后,开发人员可通过运行 composer install 命令在机器上安装这些包。

遭劫持的包的名称包括:

包名称

安装总数

acmephp/acmephp

124,860

acmephp/core

419,258

acmephp/ssl

531,692

doctrine/doctrine-cache-bundle

73,490,057

doctrine/doctrine-module

5,516,721

doctrine/doctrine-mongo-odm-module

516,441

doctrine/doctrine-orm-module

5,103,306

doctrine/instantiator

526,809,061

growthbook/growthbook

97,568

jdorn/file-system-cache

32,660

jdorn/sql-formatter

94,593,846

khanamiryan/qrcode-detector-decoder

20,421,500

object-calisthenics/phpcs-calisthenics-rules

2,196,380

tga/simhash-php (aka   tgalopin/simhashphp)

30,555


该研究员提供证据演示称,他在5月1日修改了这些包的 Packagist 页面并指向自己的(虚假)仓库而不是每个包的合法 GitHub 仓库。这些变化目前已被 Packagist 团队修正。

Packagist 上的发布流程和开源仓库如 npm 或 PyPI 的流程稍有不同。开发人员并未直接将二进制或软件发布到 Packagist.org,而是创建一个 Packagist.org 账户,并将链接“提交”到某个包的 GitHub 仓库中。Packagist 的爬虫之后访问该仓库并将所有数据展示在该包的 Packagist 页面上。

当开发人员通过 “install” 或 “update” 命令运行 Composer 时,其Composer 实例首先可能会查看这些包是否存在于本地,如不存在,则默认在 Packagist 上搜索该包并检索该包的 GitHub URL。之后,在该包的 Packagist 页面上所列的 GitHub 仓库上下载该包的内容。这种方式和 npm 或 PyPI 的运作方式完全不同,后者直接从服务器托管并分发所发布的软件。

通过修改每个包的 Packagist 页面,该研究员实际上劫持了 Composer 环境中所使用的安装工作流。开发人员将从 neskafe3v1 的 GitHub 仓库而非项目仓库中获取包内容。为了将演示控制到最小化,该研究员仅修改了 composer.json 文件,与这些包中的一个应用程序清单相关联:

"Pwned by neskafe3v1.... Ищу работу на позиции Application Security, Penetration Tester, Cyber Security Specialist."

他分叉了原始的项目仓库,修改了 composer.json 中的“描述”字段,并将变更提交到已分叉的仓库中。他并未将变更融合到原始仓库中(这样做要求更多访问权限,而且很可能会引起维护人员的审查)。该研究员显然获得对维护人员 Packagist 账户的访问权限并将所列包的 GitHub URL 更改为所分叉仓库的URL。但是,他并未透露劫持的确切方法,只是表示他并未利用 0day,而是利用了一种已知技术。然而,该研究员并未说明通过何种方式实现这种劫持,如通过攻陷凭据、利用过期域名接管维护人员的邮件地址等。

该研究员表示,“如你所见,我正在求职,因此我找到工作后会发布一份报告”,并提到整个劫持活动是“以员工身份对我自己的营销。如不成功,则不会谈论任何情况”。


02
通过攻陷凭据实施劫持

Packagist 团队表示,截止目前并未发现因劫持造成的恶意影响,同时证实接管确实源自维护人员账户凭据被攻陷。

Packagist.org 的成员兼 Composer 的原始开发人员之一 Nils Aderman 指出,“就我们所致,这起事件并未用于任何恶意目的,仅限于某些密码不安全且缺乏双因素认证的一些老旧账户。这四个账户似乎都使用了此前其它平台安全事件中泄漏的共享密码。请不要复用密码。5月2日早上7:21(协调世界时),Juha Suni 通知我们称多个 Doctrine 包的URL 遭修改。”

Packagist 管理员与 Marco Pivetta 即 Ocramius 一起迅速找到所有遭访问的账户,禁用其访问权限并将 GitHub URL 恢复到原来的值。这一恢复工作在本周二早晨完成。

该研究员还提到,他并未滥用该技术分发恶意软件,但同时表示并未将这一实验告知 Packagist 或包所有人,这就引起该研究的“道德”问题。他提到,“我做的唯一一件事是修改了 composer.json 文件中的‘描述’字段。我将原始的 github.com/acmephp/core 链接更改到我的分支里。目前并不存在恶意软件,可以将原始文件 diff 到我的。我并未将该攻击事件告知任何人,Packagist 管理员或包所有人均不知情。”

Packagist 管理员在博客文章中要求研究人员以负责任的方式报告漏洞。文章提到,“如果你是一名安全研究员且知道一个 Packagist.org 漏洞或者希望在 Packagist.org 上开展研究,请与我们协调测试工作以免造成负面的用户影响,另外请负责任地披露这些漏洞。可通过 security@packagist.org 与我们取得联系,我们将及时回复所有请求或报告。当然我们将对所报告漏洞进行致谢并发布相关详情。”




代码卫士试用地址:https://codesafe.qianxin.com
开源卫士试用地址:https://oss.qianxin.com









推荐阅读

奇安信入选全球《软件成分分析全景图》代表厂商

PHP包管理器Composer组件 Packagist中存在漏洞,可导致软件供应链攻击

赶快修复:最大的 PHP 软件包仓库 Packagist 被曝严重漏洞

通过配置不当的微软app劫持Bing 搜索结果,获得4万美元漏洞奖励

热门开源Dompdf PHP 库中存在严重漏洞

严重的PHP缺陷可导致QNAP NAS 设备遭RCE攻击



原文链接

https://www.bleepingcomputer.com/news/security/researcher-hijacks-popular-packagist-php-packages-to-get-a-job/


题图:Pixabay License


本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。




奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的产品线。

    觉得不错,就点个 “在看” 或 "赞” 吧~

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存